home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2000 #5 / Amiga Plus CD - 2000 - No. 5.iso / Tools / Grafik / Misc / netpbm / README < prev    next >
Encoding:
Text File  |  2000-01-01  |  27.3 KB  |  633 lines

  1.  
  2.                            N E T P B M
  3.                            Release 9.6
  4.  
  5. Netpbm is a toolkit for conversion of images between a variety of
  6. different formats, as well as to allow a few basic image operations.
  7. The package is intended to be portable to many platforms. It has, at
  8. least at one time, been tested under various Unix-based systems, VMS
  9. and Amiga OS.  There are also compiler directives in it for MS-DOS.
  10. The maintainer uses and builds it on a platform that consists (in
  11. relevant part) mainly of GNU software (you probably know this kind of
  12. system by the name "Linux").
  13.  
  14. There are over 180 separate tools in the package.
  15.  
  16. The idea behind Netpbm is to define 3 very basic (and inefficient)
  17. portable graphics formats: PBM for black and white, PGM for grayscale,
  18. and PPM for color.  These are collectively referred to as PNM.  To
  19. convert from one common graphics format to another, you use a PNM
  20. format as an intermediate format.  So if you want to convert among N
  21. image formats, you only need 2*N conversion filters, instead of the
  22. N^2 you would need if you wrote each conversion tool separately.
  23.  
  24. In addition to the converters, the package includes some simple tools
  25. for manipulating the portable formats.  For example, you can shrink
  26. an image or cut the top 10% off or make a mirror image.
  27.  
  28. Among the 3 PNM formats, the Netpbm tools are are upwards compatible:
  29. A program to read PGM files will also read a PBM file, and a program
  30. to read PPM files reads all three.  The image editing programs usually
  31. write the same type as they read.  Whenever a program makes an
  32. exception and "promotes" a file to a higher format, it lets you know.
  33.  
  34. The goal of Netpbm is to be a single source for all the primitive
  35. graphics utilities, especially converters, one might need.  So if you
  36. know of some freely redistributable software in this vein which is not
  37. in the package yet, you should bring it to the attention of the Netpbm
  38. maintainer so it can be included in the next release.
  39.  
  40. Netpbm replaces the widely spread Pbmplus package (release: 10 Dec
  41. 91).  A lot of improvements and additions have been made.  After the
  42. latest release of pbmplus, a lot of additional filters began
  43. circulating on the net.  The aim of Netpbm was to collect these and to
  44. turn them into a package.  This work has been performed by programmers
  45. all over the world. If *you* have some code to add, please contact the
  46. Netpbm maintainer.
  47.  
  48.  
  49. DISTRIBUTION
  50. ------------
  51.  
  52. You'll find the latest release of Netpbm source code at
  53. <http://download.sourceforge.net/netpbm/>.
  54.  
  55. A prebuilt version for Cygwin is at 
  56.   <ftp://ftp.franken.de/pub/win32/develop/gnuwin32/cygwin/porters>
  57. Contact Pierre A. Humblet <Pierre.Humblet@ieee.org>.
  58.  
  59.  
  60. PREREQUISITES
  61. -------------
  62.  
  63. Don't sweat the prerequisites too much.  In most cases, if you're
  64. missing something, the build of the programs that depend on it will
  65. bomb, but the rest of the Netpbm programs will build just fine.  And
  66. you may not need the more demanding programs.
  67.  
  68. If you have trouble getting, building, or installing the
  69. prerequisites, the Netpbm maintainer wants to know.  Since he uses
  70. them himself, he can help you.  And if there is a problem with a
  71. prerequisite package that its own maintainer cannot fix, it may be
  72. possible to ship a fix with Netpbm.
  73.  
  74. Ordinarily, the Tiff library would be a prerequisite for building the
  75. Tiff tools, but we have included a complete version of the Tiff
  76. library in Netpbm.  The main reason we did this is to make it easier
  77. for you to build, particularly in a way compatible with Netpbm.  The
  78. automatic configuration tool that comes with the regular distribution
  79. of the library has bugs.  The official source for the Tiff library is
  80. http://www.libtiff.org.
  81.  
  82. To build ppmtojpeg or jpegtoppm, you need the JPEG/JFIF library from
  83. the Independent JPEG Group (IJG).  You can get it at
  84. ftp://ftp.uu.net/graphics/jpeg.  See http://www.ijg.org for more
  85. information.  You need Release 6 or better.  With Release 5, Netpbm
  86. build fails with undefined jpeg symbols.
  87.  
  88. If you want the tiff programs to be able to deal with JPEG-compressed
  89. tiff files, you need the jpeg library (above).  If you don't have the
  90. jpeg library, you must specify so in Makefile.config or you won't be
  91. able to build the tiff tools at all.
  92.  
  93. The same goes for ppmtompeg.  You need the jpeg library if you want to
  94. create mpegs from jpegs (without the loss of quality that comes with
  95. converting from jpeg to ppm first), and if you don't have the jpeg
  96. library and don't say so in Makefile.config, you won't be able to build
  97. ppmtompeg at all. 
  98.  
  99. To build or use pnmtopng and pngtopnm, you need the zlib compression
  100. library and the png library (libpng).  You can get zlib from
  101. ftp://quest.jpl.nasa.gov/pub/zlib or
  102. ftp://metalab.unc.edu/pub/Linux/libs.  You can get libpng from
  103. ftp://ftp.au.netbsd.org/pub/NetBSD/packages/distfiles.
  104.  
  105. Pstopnm (the Postscript to PNM image converter) requires Ghostscript
  106. (installed with the name 'gs' in your command search path).  And it 
  107. requires in particular that Ghostscript be built with the relevant 
  108. PNM device drivers.  See http://www.gnu.org/ghostscript/ .
  109.  
  110. The Utah Raster Toolkit is not a prerequisite because Netpbm includes
  111. a subset of it that meets the needs of pnmtorle and rletopnm.
  112. However, you can also substitute the real package by properly
  113. configuring Makefile.config.  You can get it from 
  114. ftp://ftp.cs.utah.edu/pub/dept/OLD/pub/urt-3.1b.tar.Z.  There's a 
  115. patch at ftp://ptolemy.berkeley.edu/pub/misc/urt/urt-3.1b-3.1b1.patch
  116.  
  117.  
  118.  
  119.  
  120. INSTALLATION
  121. ------------
  122.  
  123. If you are building Netpbm on and for a typical system running GNU
  124. tools and libc (as virtually any system that uses the Linux kernel
  125. is), you can just do:
  126.  
  127.     make
  128.  
  129. To build all the programs.  Then
  130.  
  131.     make install
  132.  
  133. to install them all.  
  134.  
  135. The only tricky part about installing is setting up the shared libraries
  136. that are part of Netpbm.  'make install' copies them into place, but that
  137. may not be enough.  If you get mysterious "file not found" kinds of 
  138. errors and are not an expert with shared libraries, see the section
  139. "SHARED LIBRARIES" below.
  140.  
  141. You may want to append the contents of the file 'magic' to your 'file'
  142. database (typically /etc/magic).  This allows the 'file' program to
  143. recognize a bunch of file formats, including the Netpbm formats.
  144.  
  145. If you don't need the whole package, but just want one tool in it that you
  146. heard about, you can make just that one.  For example, to make ppmtojpeg,
  147. just cd to the ppm directory and run
  148.    
  149.   make ppmtojpeg  STATICLIB=Y   .
  150.  
  151. It will build ppmtojpeg and any of its dependencies, but nothing else.
  152. You have to install it manually.  We set the STATICLIB variable
  153. because if you're building just one program, the shared libraries
  154. would be pure masochism.
  155.  
  156. The --keep-going option to Make is handy, because it causes Make to
  157. make anything it can, as opposed to quitting as soon as something goes
  158. wrong.  With so many parts having so many requirements, it's not
  159. unusual for a few things to fail to build, but that doesn't affect
  160. everything else.  You can work on the failed parts and repeat the make
  161. and it will attempt to build whatever it hasn't successfully built
  162. yet.
  163.  
  164.  
  165. INSTALLATION - NOT GNU - SOLARIS, SUNOS, NETBSD, CYGWIN, BEOS, TRU64
  166. --------------------------------------------------------------------
  167.  
  168. Unless you want to do some make file rewriting, you will need to use
  169. GNU Make even if nothing else on your system is GNU, because the
  170. Netpbm make files exploit some advanced features of GNU Make.  Often,
  171. systems have both GNU Make and a native Make.  In this case, GNU Make
  172. is named 'gmake'.  If you don't have it yet, see www.gnu.org/software.
  173. GNU Make is free, easy to install, and works just about anywhere.
  174.  
  175. If the standard make files don't work on your platform, then update
  176. Makefile.config.  This file contains settings for various things that
  177. vary from one system to the next, like file paths.  Search for your
  178. platform name (Solaris, SunOS, NetBSD, Cygwin, BeOS, and Tru64 are
  179. mentioned) to see recommended settings for your platform.
  180.  
  181. If you've messed up Makefile.config and need to start over,
  182. Makefile.config.in is a copy of the distributed version of
  183. Makefile.config.
  184.  
  185. If your system is even too exotic for that, you may need to modify
  186. things in the main make files or pbmplus.h.
  187.  
  188. If you figure out how to install on other platforms, contact the
  189. Netpbm maintainer to have these instructions improved for the next
  190. person.
  191.  
  192.  
  193.  
  194. INSTALLATION - MISCELLANEOUS
  195. ----------------------------
  196.  
  197. After installing the manual pages, you may want to create the "whatis"
  198. file by doing a catman -w -M <directory>, or makewhatis -w, or
  199. whatever the equivalent is on your system.  Without Whatis, you may
  200. have a hard time finding the Netpbm tools you have installed.
  201.  
  202. There is a patch to Zgv 5.0 to allow it to work with the newer Netbpm
  203. formats with maxval > 255.  If you have Zgv 5.1 or later, you don't
  204. need it.  The patch is in the Netpbm source directory as
  205. zgv_bigmaxval.patch.  Zgv is a graphics file viewer.  See below.
  206.  
  207.  
  208. INSTALLATION - SHARED LIBRARIES
  209. -------------------------------
  210.  
  211. There are over 180 programs in the Netpbm package and they do a lot of 
  212. common things.  In order to avoid the expense of copying the code for 
  213. those common things into every program, Netpbm places it in 4 shared
  214. libraries:  libpbm, libpgm, libppm, and libpnm.  There is also a libtiff
  215. shared library that comes with Netpbm.  When you invoke a Netpbm program,
  216. your system notices that it needs these libraries and accesses them too.
  217.  
  218. The tricky part of installing the shared (runtime) libraries is
  219. telling your system where to find them in the event that you invoke a
  220. Netpbm program.  And that varies from one system to the next.
  221.  
  222. On a GNU libc system (essentially, any Linux-based system), if you put
  223. the Netpbm shared libraries in a conventional spot (say, /lib) and
  224. reboot your system, chances are you will have no trouble running
  225. Netpbm programs.  But if you want to fine tune things, read up on
  226. ld-linux.so (GNU libc's dynamic linker) and ldconfig and consider the
  227. /etc/ld.so.conf file and LD_LIBRARY_PATH environment variables.  Use
  228. 'ldd' to see if you have a shared library issue.  If it shows any
  229. shared library as "not found", you've got library trouble.
  230.  
  231. One final note: New Netpbm executables often can run OK with old
  232. Netpbm shared libraries.  This means if you don't correctly install
  233. the new libraries, you may run what you think is a new Netpbm program,
  234. but in actuality be accessing the old Netpbm library, and you may not
  235. even notice a problem right away.  But eventually, you may find some
  236. things not working the way they should.  Again, 'ldd' will give you 
  237. peace of mind.
  238.  
  239.  
  240.  
  241. HOW TO FIND THE RIGHT CONVERTER
  242. -------------------------------
  243.  
  244. Some people get confused by all the different names.  If you want to
  245. convert a pbm file to a Sun raster file, is it pbmtorast, pgmtorast,
  246. ppmtorast, or pnmtorast?  A useful tool for answering this question,
  247. if you have it configured, is man -k.  You say "man -k <keyword>" and
  248. it gives you all the one-line descriptions with that keyword in them.
  249. All the Netpbm man pages have nice useful one-line descriptions, that
  250. mention all the relevant keywords.  Try it, you'll like it.
  251.  
  252. Here is a brief directory of the Netpbm tools.
  253.  
  254. A "pgmtoxxx" tool accepts PBM as well as PGM input and likewise a
  255. "ppmtoxxx" tool accepts PBM, PGM, and PPM.  But a "xxxtopgm" tool
  256. always creates a PGM file and a "xxxtoppm" tool always creates a PPM
  257. file.  A "pnmtoxxx" tool accepts all three input formats and behaves
  258. differently according to which it is.  A "xxxtopnm" tool creates any
  259. of two or more of the formats, depending on input and command line
  260. options.
  261.  
  262.  
  263.   CONVERTERS
  264.  
  265.     ppmtompeg     convert series of ppm frames to an mpeg movie
  266.     jpegtopnm     convert JFIF/JPEG file to Netpbm format
  267.     anytopnm      convert any graphics format to Netpbm format
  268.     ppmtojpeg     convert PPM to JPEG/JFIF format
  269.     bmptoppm      convert Windows or OS/2 Bitmap file to PPM
  270.     ppmtobmp      convert PPM to Windows or OS/2 Bitmap file
  271.     giftopnm      convert GIF to portable anymap
  272.     ppmtogif      convert PPM to GIF
  273.     pnmtopng      convert portable anymap to Portable Network Graphics
  274.     pngtopnm      convert Portable Network Graphics to portable anymap
  275.     jbigtopbm     convert JBIG BIE (compressed bitmap) to PBM
  276.     pbmtojbig     convert PBM to JBIG BIE (compressed bitmap)
  277.     pnmtofiasco   convert Netpbm image to Fiasco (wfa) highly compressed format
  278.     fiascotopnm   convert Fiasco (wfa) highly compressed format to Netpbm image
  279.     hpcdtoppm     convert photo CD to PPM
  280.     pbmtowbmp     convert PBM to WAP (Wireless App Protocol) Wireless Bitmap
  281.     wbmptopbm     convert WAP (Wireless App Protocol) Wireless Bitmap to PBM
  282.     pbmtomda      convert from PBM to Microdesign (for Amstrad PCWs)
  283.     mdatopbm      convert from Microdesign (for Amstrad PCWs) to PBM
  284.     atktopbm      convert Andrew Toolkit raster object to PBM
  285.     pbmtoatk      convert PBM to Andrew Toolkit raster object
  286.     brushtopbm    convert Xerox doodle brushes to PBM
  287.     cmuwmtopbm    convert CMU window manager format to PBM
  288.     g3topbm       convert Group 3 FAX to PBM
  289.     pbmtog3       convert PBM to Group 3 FAX
  290.     icontopbm     convert Sun icon to PBM
  291.     pbmtoicon     convert PBM to Sun icon
  292.     gemtopnm      convert GEM .img format to PBM or pixmap
  293.     macptopbm     convert MacPaint to PBM
  294.     pbmtomacp     convert PBM to MacPaint
  295.     mgrtopbm      convert MGR format to PBM
  296.     pbmtomgr      convert PBM to MGR format
  297.     pi3topbm      convert Atari Degas .pi3 to PBM
  298.     pbmtopi3      convert PBM to Atari Degas .pi3
  299.     xbmtopbm      convert X10 or X11 bitmap to PBM
  300.     pbmtoxbm      convert PBM to X11 bitmap
  301.     pbmtox10bm    convert PBM to X10 bitmap
  302.     ybmtopbm      convert Bennet Yee "face" file into PBM
  303.     pbmtoybm      convert PBM into Bennet Yee "face" file
  304.     pbmto10x      convert PBM to Gemini 10x printer graphics
  305.     pbmtoascii    convert PBM to ASCII graphic form
  306.     asciitopgm    convert ASCII character graphics to portable graymap
  307.     pbmtobbnbg    convert PBM to BBN BitGraph graphics
  308.     pbmtocmuwm    convert PBM to CMU window manager format
  309.     pbmtoepson    convert PBM to Epson printer graphics
  310.     pbmtogem      convert PBM into GEM .img file
  311.     pbmtogo       convert PBM to GraphOn graphics
  312.     pbmtolj       convert PBM to HP LaserJet graphics
  313.     pbmtoplot     convert PBM into Unix plot(5) file
  314.     pbmtoptx      convert PBM to Printronix graphics
  315.     pbmtozinc     convert PBM to Zinc Interface Library icon
  316.     fitstopnm     convert FITS format to portable anymap
  317.     pnmtofits     convert portable anymap to FITS format
  318.     fstopgm       convert Usenix FaceSaver(tm) format to portable graymap
  319.     pgmtofs       convert portable graymap to Usenix FaceSaver(tm) format
  320.     hipstopgm     convert HIPS format to portable graymap
  321.     lispmtopgm    convert a Lisp Machine bitmap file into pgm format
  322.     pgmtolispm    convert a portable graymap into Lisp Machine format
  323.     psidtopgm     convert PostScript "image" data to portable graymap
  324.     rawtopgm      convert raw grayscale bytes to portable graymap
  325.     pgmtopbm      convert portable graymap to PBM
  326.     pbmmask       create a mask bitmap from a regular bitmap
  327.     ppmcolormask  create mask of areas of a certain color in an image
  328.     gouldtoppm    convert Gould scanner file to PPM
  329.     ilbmtoppm     convert IFF ILBM to PPM
  330.     ppmtoilbm     convert PPM to IFF ILBM
  331.     imgtoppm      convert Img-whatnot to PPM
  332.     mtvtoppm      convert MTV ray-tracer output to PPM
  333.     pcxtoppm      convert PC Paintbrush format to PPM
  334.     pgmtoppm      colorize a portable graymap into a PPM
  335.     pi1toppm      convert Atari Degas .pi1 to PPM
  336.     ppmtopi1      convert PPM to Atari Degas .pi1
  337.     picttoppm     convert Macintosh PICT to PPM
  338.     ppmtopict     convert PPM to Macintosh PICT
  339.     pjtoppm       convert HP PaintJet file to PPM
  340.     ppmtopj       convert PPM to HP PaintJet file
  341.     qrttoppm      convert QRT ray-tracer output to PPM
  342.     rawtoppm      convert raw RGB bytes to PPM
  343.     rgb3toppm     combine three portable graymaps into one PPM
  344.     ppmtorgb3     separate a PPM into three portable graymaps
  345.     sldtoppm      convert an AutoCAD slide file into a PPM
  346.     spctoppm      convert Atari compressed Spectrum to PPM
  347.     sputoppm      convert Atari uncompressed Spectrum to PPM
  348.     tgatoppm      convert TrueVision Targa file to PPM
  349.     ppmtotga      convert PPM to TrueVision Targa file
  350.     ximtoppm      convert Xim to PPM
  351.     xpmtoppm      convert XPM format to PPM
  352.     ppmtoxpm      convert PPM to XPM format
  353.     yuvtoppm      convert Abekas YUV format to PPM
  354.     eyuvtoppm     convert Encoder/Berkeley YUV format to PPM
  355.     ppmtoeyuv     convert PPM to Encoder/Berkeley YUV format
  356.     ppmtoyuv      convert PPM to Abekas YUV format
  357.     ppmtoyuvsplit convert PPM to 3 subsampled raw YUV files
  358.     yuvsplittoppm merge 3 subsampled raw YUV files to one PPM
  359.     ppmtoacad     convert PPM to AutoCAD database or slide
  360.     ppmtoicr      convert PPM to NCSA ICR graphics
  361.     ppmtopcx      convert PPM to PC Paintbrush format
  362.     ppmtopgm      convert PPM to portable graymap
  363.     ppmtopuzz     convert PPM to X11 "puzzle" file
  364.     ppmtosixel    convert PPM to DEC sixel format
  365.     ppmtouil      convert PPM to Motif UIL icon file
  366.     rasttopnm     convert Sun raster file to portable anymap
  367.     pnmtorast     convert portable anymap to Sun raster file
  368.     tifftopnm     convert TIFF file to portable anymap
  369.     pnmtotiff     convert portable anymap to TIFF RGB file
  370.     pnmtotiffcmyk convert portable anymap to TIFF CMYK file
  371.     xwdtopnm      convert X10 or X11 window dump to portable anymap
  372.     pnmtoxwd      convert portable anymap to X11 window dump
  373.     pnmtops       convert portable anymap to Postscript
  374.     pstopnm       convert Postscript to portable anymap
  375.     pnmtoplainpnm convert a regular portable anymap into plain pnm format
  376.     pbmtoepsi     convert a PBM image to encapsulated Postscript preview bitmap
  377.     pbmtopgm      convert PBM file to PGM by averaging areas
  378.     sbigtopgm     convert Santa Barbara Instrument Group CCD file to PGM
  379.     vidtoppm      convert Parllax XVideo JPEG to sequence of PPM files
  380.     pnmtorle      convert PNM to Utah Raster Toolkit (urt/rle) file
  381.     rletopnm      convert Utah Raster Toolkit (urt/rle) file to PNM
  382.     ppmtoleaf     convert PPM to Interleaf
  383.     leaftoppm     convert Interleaf to PPM
  384.  
  385.  
  386.  
  387.   IMAGE GENERATORS
  388.  
  389.     pbmmake       create a blank PBM image of a specified size
  390.     ppmmake       create a pixmap of a specified size and color
  391.     ppmpat        create a pretty pixmap
  392.     pgmnoise      create a portable graymap of white noise
  393.     pbmtext       render text into a PBM image
  394.     pbmupc        create a Universal Product Code PBM image
  395.     ppmcie        generate a CIE color map image
  396.     pbmpage       create a printer test pattern page.
  397.  
  398.  
  399.   IMAGE EDITORS
  400.  
  401.     ppmlabel      Add text to an image
  402.     pnmshadow     add a shadow to an image so it looks like it's floating
  403.     ppmbrighten   brighten or dim an image -- change saturation and value
  404.     ppmdim        dim a PPM image - different way from ppmbrighten
  405.     pbmreduce     reduce a PBM N times, using Floyd-Steinberg
  406.     pgmnorm       normalize contrast in a portable graymap image
  407.     ppmnorm       normalize contrast in a PPM image
  408.     pbmpscale     englarge a PBM image with edge smoothing
  409.     pnmscale      scale a portable anymap image
  410.     ppmdither     ordered dither for color images
  411.     ppmquant      quantize colors in an image down to a specified number
  412.     ppmquantall   quantize colors down to a specified number on many files
  413.     ppmrelief     run a Laplacian Relief filter on a PPM
  414.     pnmarith      perform arithmetic on two portable anymaps
  415.     pnmcat        concatenate portable anymaps
  416.     pnmpad        add borders to a portable anymap
  417.     pnmcomp       create composite (overlay) of two portable anymap images
  418.     ppmmix        mix (overlay) two images.
  419.     pnmcrop       crop all like-colored borders off a portable anymap
  420.     pnmcut        select a rectangular region from a portable anymap
  421.     pnmdepth      change the maxval in a portable anymap
  422.     pnmenlarge    enlarge a portable anymap N times
  423.     pnmflip       perform one or more flip operations on a portable anymap
  424.     pnminterp     scale up portable anymap by interpolating between pixels
  425.     pnminterp-gen scale by non-integer values using pnminterp and pnmscale
  426.     pnminvert     invert a portable anymap
  427.     pnmgamma      perform gamma correction on a portable anymap
  428.     pnmmargin     add a margin to a portable anymap
  429.     pnmpaste      paste a rectangle into a portable anymap
  430.     pnmrotate     rotate a portable anymap
  431.     pnmshear      shear a portable anymap
  432.     pnmsmooth     smooth a portable anymap image
  433.     pnmtile       replicate a portable anymap into a specified size
  434.     pbmclean      remove lone pixels (snow) from a PBM image
  435.     pnmalias      antialias a portable anymap image
  436.     ppmchange     change all of one color to another in PPM image
  437.     ppmshift      shift lines of PPM image left or right a random amount
  438.     ppmspread     move pixels of PPM image a random amount
  439.     pnmconvol     general MxN convolution on a portable anymap
  440.     pbmlife       apply Conway's rules of Life to a PBM image
  441.     ppmdist       map colors to high contrast grayscales arbitrarily
  442.     ppmntsc       adjust colors so they are legal for NTSC or PAL television
  443.  
  444.  
  445.   IMAGE ANALYZERS
  446.     pnmfile       describe a portable anymap
  447.     pnmpsnr       measure difference between two images
  448.     pgmedge       edge-detect a portable graymap
  449.     pgmenhance    edge-enhance a portable graymap
  450.     pgmramp       generate a grayscale ramp
  451.     pgmslice      print grayscale values for a row or column of a pgm image
  452.     pgmtexture    calculate textural features on a portable graymap
  453.     pgmhist       print a histogram of the values in a portable graymap
  454.     ppmhist       print a histogram of a PPM
  455.     ppmtomap      generate a map of all colors in an image
  456.  
  457.   MISCELLANEOUS
  458.  
  459.     pnmsplit      split a multi-image PNM file into multiple 1-image files
  460.     pnmindex      build a visual index of a bunch of anymaps
  461.     pgmbentley    Bentleyize a portable graymap
  462.     pgmcrater     create cratered terrain by fractal forgery
  463.     pgmoil        turn a portable graymap into an oil painting
  464.     ppmforge      fractal forgeries of clouds, planets, and starry skies
  465.     pgmkernel     generate a convolution kernel
  466.     ppmtv         Make an image lined so it looks like an old TV
  467.     
  468.  
  469.  
  470.   UNCATALOGUED AS YET
  471.  
  472.     bioradtopgm
  473.     pbmto4425
  474.     pbmtoln03
  475.     pbmtolps
  476.     pbmtopk
  477.     pktopbm
  478.     pnmhisteq
  479.     pnmhistmap
  480.     pnmnlfilt
  481.     pnmtoddif
  482.     pnmtosgi
  483.     pnmtosir
  484.     ppm3d
  485.     ppmflash
  486.     ppmqvga
  487.     ppmtomitsu
  488.     ppmtopjxl
  489.     sgitopnm
  490.     sirtopnm
  491.     spottopgm
  492.     xvminitoppm
  493.     zeisstopnm
  494.  
  495.  
  496. APPLICATION NOTES
  497. -----------------
  498.  
  499. As a collection of primitive tools, the power of Netpbm is multiplied
  500. by the power of all the other unix tools you can use with them.  These
  501. notes remind you of some of the more useful ways to do this.  Often,
  502. when people want to add high level functions to the Netpbm tools, they
  503. have overlooked some existing tool that, in combination with Netpbm,
  504. already does it.
  505.  
  506. Often, you need to apply some conversion or edit to a whole bunch of files.
  507.  
  508. As a rule, Netpbm programs take one input file and produce one output file,
  509. usually on Standard Output.  This is for flexibility, since you so often 
  510. have to pipeline many tools together.
  511.  
  512. Here is an example of a shell command to convert all your of PNG files
  513. (named *.png) to JPEG files named *.jpg:
  514.  
  515.   for i in *.png; do pngtopnm $i |ppmtojpeg >`basename $i .png`.jpg; done
  516.  
  517. Or you might just generate a stream of individual shell commands, one
  518. per file, with awk or perl.  Here's how to brighten 30 YUV images that
  519. make up one second of a movie, keeping the images in the same files:
  520.  
  521. ls *.yuv \
  522.   | perl -ne 'chomp; 
  523.               print "yuvtoppm $_ | ppmbrighten -v 100 | ppmtoyuv >tmp$$.yuv;", 
  524.                     "mv tmp$$.yuv $_\n" 
  525.              ' \
  526.   | sh 
  527.  
  528. The tools Find (with the '-exec' option) and Xargs are also useful for simple
  529. manipulation of groups of files.
  530.  
  531. Some shells' "process substitution" facility can help where a
  532. non-Netpbm program expects you to identify a disk file for input and
  533. you want it to use the result of a Netpbm manipulation.  Say printcmyk
  534. takes the filename of a Tiff CMYK file as input and what you have is a
  535. PNG file abc.png.  Try:
  536.  
  537.   printcmyk <({ pngtopnm abc.png | pnmtotiffcmyk ; })
  538.  
  539. It works in the other direction too, if you have a program that has you
  540. name its output file and you want the output to go through a Netpbm tool.
  541.  
  542.  
  543. SUPPORT
  544. -------
  545.  
  546. The maintainer of Netpbm, since September 1999, is Bryan Henderson:
  547. bryanh@giraffe-data.com.  Or as a backup, bryanh@home.com.  Bryan
  548. actively maintains the package and wants to know about any problems
  549. people have with Netpbm or suggestions for improvement.
  550.  
  551.  
  552.  
  553. OTHER GRAPHICS SOFTWARE
  554. -----------------------
  555.  
  556. Netpbm contains primitive building blocks.  It certainly is not a complete
  557. graphics library.
  558.  
  559. The first thing you will need to make use of any of these tools is a viewer.
  560. Zgv is a good viewer to use on a GNU/Linux system with the SVGALIB graphics
  561. display driver library.  You can find Zgv at 
  562. ftp://metalab.unc.edu/pub/Linux/apps/graphics/viewers.
  563.  
  564. Zgv even has a feature in it wherein you can visually crop an image
  565. and write an output file of the cropped image using pnmcut.  See the
  566. -s option to Zgv.
  567.  
  568. For the X inclined, there is also Xzgv.  See
  569. ftp://metalab.unc.edu/pub/Linux/apps/graphics/viewers/X.
  570.  
  571. ImageMagick is like a visual version of Netpbm.  Using the X/Window
  572. system on Unix, you can do basic editing of images and lots of format
  573. conversions.  The package does include at least some non-visual tools,
  574. e.g.  the Convert program, designed to be invoked from a command
  575. shell.  ImageMagick runs on Unix, Windows, Windows NT, Macintosh, and
  576. VMS.
  577.  
  578.  
  579. The Utah Raster Toolkit serves a lot of the same purpose as Netpbm,
  580. but without the emphasis on format conversions.  This package is based
  581. on the RLE format, which you can convert to and from the Netpbm
  582. formats.  http://www.cs.utah.edu/research/projects/alpha1/urt.html
  583. gives some information on the Utah Raster Toolkit, but does not tell
  584. where to get it.
  585.  
  586.  
  587. There are some Netpbm-like graphics tools distributed by the Army High
  588. Performance Computing Research Center at
  589. http://www.arc.umn.edu/gvl-software/media-tools.html.  These operate
  590. directly on non-Netpbm format images, so they aren't included in the
  591. Netpbm package.  However, you can use them with any image format by
  592. using the Netpbm format converters.
  593.  
  594.  
  595. Ivtools is a suite of free X Windows drawing editors for Postscript,
  596. Tex, and web graphics production, as well as an embeddable and
  597. extendable vector graphic shell.  It uses the Netpbm facilities.
  598. See http://www.ivtools.org.
  599.  
  600. Ilib is a C subroutine library with functions for adding text to an
  601. image (as you might do at a higher level with Pbmtext, Pnmcomp, etc.).
  602. It works with Netpbm input and output.  Find it at 
  603. <http://www.radix.net/~cknudsen/Ilib>.  Netpbm also includes character
  604. drawing functions in the Libppm library, but they do not have as fancy
  605. font capabilities (see Ppmlabel for an example of use of the Netpbm
  606. character drawing functions).
  607.  
  608. pnm2ppa converts to HP's "Winprinter" format (for HP 710, 720, 820,
  609. 1000, etc).  It is a superset of Netpbm's pbmtoppa and handles,
  610. notably, color.  However, it is more of a printer driver than a
  611. Netpbm-style primitive graphics building block.  See
  612. <http://sourceforge.net/project/?group_id=1322>.
  613.  
  614.  
  615. HISTORY
  616. -------
  617.  
  618. See the file HISTORY.
  619.  
  620.  
  621. MORE INFORMATION
  622. ----------------
  623.  
  624. A good place to start for information about the wide world of computer
  625. graphics is http://www.faqs.org/faqs/graphics/  .
  626.  
  627.  
  628.  
  629. COPYRIGHTS
  630. ----------
  631.  
  632. See the file COPYRIGHT.
  633.